package com.ssy.lingxi.product.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.product.api.model.request.warehouse.InventoryListRequest;
import com.ssy.lingxi.product.api.model.request.warehouse.InventorySafetyUpdateRequest;
import com.ssy.lingxi.product.api.model.request.warehouse.QueryGoodsInventoryRequest;
import com.ssy.lingxi.product.api.model.request.warehouse.QueryInventoryByItemNoRequest;
import com.ssy.lingxi.product.api.model.response.warehouse.InventoryListResponse;
import com.ssy.lingxi.product.api.model.response.warehouse.QueryGoodsInventoryReesponse;
import com.ssy.lingxi.product.api.model.response.warehouse.QueryInventoryByItemNoResponse;

/**
* 库存管理
* @author wrc
* @date 2020/6/29
*/
public interface InventoryService {

    /**
    * 查询库存列表
    * @author wrc
    * @date 2020/6/29
    */
    Wrapper<PageData<InventoryListResponse>> inventoryList(InventoryListRequest request, UserLoginCacheDTO sysUser);

    /**
    * 单个/批量调整安全库存
    * @author wrc
    * @date 2020/6/30
    */
    Wrapper<Void> inventorySafetyUpdate(InventorySafetyUpdateRequest request);


    /**
    * 查询仓库货品库存
    * @author wrc
    * @date 2020/6/30
    */
    QueryGoodsInventoryReesponse queryGoodsInventory(QueryGoodsInventoryRequest request);


    /**
    * 根据仓库和货号ID查询库存
    * @author wrc
    * @date 2020/8/7
    */
    Wrapper<QueryInventoryByItemNoResponse> queryInventoryByItemNo(QueryInventoryByItemNoRequest request);
}
